public class Offer63 {
/*
剑指 Offer 63. 股票的最大利润
解题思路：一次遍历法。定义两个变量，一个用来存放最低价minPrice，初始值为int最大值，一个用来存放最大收益maxProfit。
遍历数组，次数为prices数组的长度。当当前数组的值prices[i]小于minPrice时，说明还有最低价格，更新minPrice，否则计
算二者差值并与maxProfit比较，比maxProfit大，则更新maxProfit.
 */
  public static void main(String[] args) {
    int[]num = new int[]{7,1,5,3,6,4};
    System.out.println(new Offer63().maxProfit(num));
  }

  public int maxProfit(int[] prices) {
    int minPrice = Integer.MAX_VALUE;
    int maxProfit = 0;
    for (int i = 0; i < prices.length; i++) {
      if (prices[i] < minPrice){
        minPrice = prices[i];
      }else if (prices[i] - minPrice > maxProfit){
        maxProfit = prices[i] - minPrice;
      }
    }
    return maxProfit;
  }
}
